package com.jml.二期.HashMap003;

import java.util.ArrayList;
import java.util.List;

public class JmlArraylistMap<K, V> implements JmlMap<K, V> {
    private List<Entry> entrys = new ArrayList<Entry>();

    // 基于Arraylist实现HashMap
    @Override
    public int size() {
        return entrys.size();
    }

    @Override
    public V put(K key, V value) {
        Entry entry = new Entry(key, value);
        entrys.add(entry);
        return value;
    }

    @Override
    public V get(Object key) {
        for (Entry entry : entrys) {
            if (entry.getKey().equals(key)) {
                return (V)entry.getValue();
            }
        }
        return null;
    }
    // 存放一条键值对 key和value 使用对象封装

    class Entry<K, V> implements JmlMap.Entry<K, V> {
        // key
        private K k;
        // value
        private V v;

        @Override
        public K getKey() {
            return this.k;
        }

        @Override
        public V getValue() {
            return this.v;
        }

        @Override
        public V setValue(V value) {
            this.v = v;
            return this.v;
        }

        public Entry(K k, V v) {
            this.k = k;
            this.v = v;
        }
    }
    // 基于arraylist 实现HashMap存在那些缺点呢？ 链表技术 取余树

    // %

}
